package com.analyse.stock.strategy.indicator;

import org.ta4j.core.*;
import org.ta4j.core.indicators.AbstractIndicator;
import org.ta4j.core.indicators.WilliamsRIndicator;
import org.ta4j.core.num.Num;

public class AdjustedWilliamsRIndicator extends AbstractIndicator<Num> {

    private final WilliamsRIndicator wrIndicator;

    // 构造函数，接受时间序列和周期参数
    public AdjustedWilliamsRIndicator(BarSeries series, int barCount) {
        super(series);
        this.wrIndicator = new WilliamsRIndicator(series, barCount);
    }
    /**
     *  Williams %R（WR） 的值设定在 0 到 100 之间，而不是默认的 -100 到 0，只需要对计算结果进行简单的转换
     **/
    @Override
    public Num getValue(int index) {
        // 将 WR 值从 [-100, 0] 转换到 [0, 100]
        return wrIndicator.getValue(index).abs();
    }
}

